home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1997-01-29 | 4.4 KB | 151 lines |
- 10 'ZENER - 17 MAY 92 rev. 30 SEP 96
- 20 IF EX$=""THEN EX$="EXIT"
- 30 PROG$="zener"
- 40 COMMON EX$,PROG$,R,E
- 50 CLS
- 60 COLOR 7,0,1
- 70 UL$=STRING$(80,205) 'horizontal line
- 80 ER$=STRING$(80,32) 'erase line
- 90 '
- 100 '.....start
- 110 CLS
- 120 COLOR 15,2
- 130 PRINT " ZENER DIODE VOLTAGE REGULATOR";
- 140 PRINT TAB(57);"by George Murphy VE3ERP ";
- 150 COLOR 1,0:PRINT STRING$(80,223);
- 160 COLOR 7,0
- 170 GOSUB 1220 'diagram
- 180 PRINT
- 190 COLOR 0,7:LOCATE CSRLIN,22
- 200 PRINT " Press 1 to continue or 0 to EXIT....."
- 210 COLOR 7,0
- 220 Z$=INKEY$:IF Z$=""THEN 220
- 230 IF Z$="0"THEN CLS:RUN EX$
- 240 IF Z$="1" THEN 260
- 250 GOTO 220
- 260 LOCATE CSRLIN-1:PRINT STRING$(80,32);:LOCATE CSRLIN-1
- 270 INPUT " ENTER: Input MAXIMUM voltage..............Vmax =";VMAX
- 280 IF VMAX=0 THEN GOSUB 1180:GOTO 270
- 290 INPUT " ENTER: Input MINIMUM voltage..............Vmin =";VMIN
- 300 IF VMIN=0 THEN GOSUB 1180:GOTO 290
- 310 INPUT " ENTER: Zener Diode voltage................Vreg =";VREG
- 320 IF VREG=0 THEN GOSUB 1180:GOTO 310
- 330 IF VREG>=VMIN THEN 380
- 340 INPUT " ENTER: Load current in amperes............Load =";I
- 350 IF I=0 THEN GOSUB 1180:GOTO 340
- 360 VIEW PRINT 13 TO 24:CLS:VIEW PRINT:LOCATE 3:GOTO 450
- 370 '
- 380 '.....invalid input
- 390 BEEP:COLOR 0,7
- 400 PRINT " Voltage of Zener diode must be lower than minimum input voltage.";
- 410 PRINT " ...Press any key to start over..."
- 420 COLOR 7,0
- 430 IF INKEY$=""THEN 430 ELSE 100
- 440 '
- 450 '.....calculate resistor value
- 460 R=(VMIN-VREG)/(1.1*I) 'series resistor in ohms
- 470 R=INT(R*10+0.5)/10 'rounded to nearest 0.1 -
- 480 '
- 490 '.....calculate watts
- 500 PD=(((VMAX-VREG)/R)-I)*VREG 'power dissipation of zener diode in watts
- 510 RW=(5*(VMAX-VREG)^2/R) 'wattage rating for RS
- 520 LW=I*VREG 'load in watts
- 530 BIN=LW:GOSUB 1120:LW$=B$ 'correct binary error
- 540 L$=" Load @"+STR$(I)+" amps"
- 550 LL$=" ="+LW$+" watts"
- 560 '
- 570 '.....display results
- 580 COLOR 0,7
- 590 LOCATE 5,2:PRINT " " 'replace Vmin
- 600 LOCATE 8,27:PRINT "THEN + " 'replace Vreg
- 610 FOR E=9 TO 11:LOCATE E,26:PRINT SPC(11):NEXT E
- 620 LOCATE 12,27:PRINT "THEN SOUND "
- 630 GOSUB 700
- 640 GOSUB 810
- 650 GOSUB 920
- 660 COLOR 7,0
- 670 GOSUB 1380 'screen dump
- 680 CLS:E=-1:CHAIN"precires"
- 690 '
- 700 '.....format resistor read-out
- 710 W$="1/4" 'standard resistor wattage rating
- 720 IF RW>0.25 THEN W$="1/2"
- 730 IF RW>0.5 THEN W$="1"
- 740 IF RW>1 THEN W$=STR$(INT(RW)+1)
- 750 W$=" - "+W$+" watt minimum " 'resistor wattage
- 760 R$=STR$(R)+W$
- 770 LOCATE 6,17
- 780 PRINT R$
- 790 RETURN
- 800 '
- 810 '.....format input voltage read-out
- 820 BIN=VMIN:GOSUB 1120:V1$=B$ 'correct any binary inaccuracy
- 830 BIN=VMAX:GOSUB 1120:V2$=B$
- 840 IF V1$=V2$ THEN V$="+"+V1$+"v.":GOTO 890
- 850 V$=V1$+" to"+V2$+"v."
- 860 LOCATE 4,30
- 870 PRINT V$;" unregulated"
- 880 LOCATE 3,2
- 890 PRINT V$;" source"
- 900 RETURN
- 910 '
- 920 '.....format zener diode read-out
- 930 BIN=VREG:GOSUB 1120 'correct any binary inaccuracy
- 940 D$=B$ 'corrected value of Vreg
- 950 D$=D$+"v. "
- 960 U$="#.###"
- 970 IF PD>=1 THEN U$="#.##"
- 980 IF PD>=10 THEN U$="##.#"
- 990 IF PD>=100 THEN U$="###"
- 1000 LOCATE 10,17
- 1010 PRINT D$;USING U$;PD;
- 1020 PRINT " watt minimum ";
- 1030 LOCATE 8,48:PRINT "COLOR"
- 1040 FOR H=9 TO 11:LOCATE H,48:PRINT "CALL":NEXT H
- 1050 LOCATE 12,48:PRINT "'"
- 1060 LOCATE 9,50:PRINT L$
- 1070 LOCATE 10,50:PRINT LL$
- 1080 LOCATE 8,30
- 1090 PRINT D$;"regulated "
- 1100 RETURN
- 1110 '
- 1120 '.....correct any binary inaccuracy
- 1130 B$=STR$(BIN):L=LEN(B$) 'correct any binary innaccuracy
- 1140 IF RIGHT$(B$,3)<>"001"THEN 1160
- 1150 B$=LEFT$(B$,L-1):B$=STR$(VAL(B$))
- 1160 RETURN
- 1170 '
- 1180 '.....erase previous line
- 1190 LOCATE CSRLIN-1:PRINT ER$:LOCATE CSRLIN-2
- 1200 RETURN
- 1210 '
- 1220 '.....block diagram
- 1230 COLOR 0,7
- 1240 PRINT " Vmax "
- 1250 PRINT " + SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDBSAVESOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND + V unregulated "
- 1260 PRINT " Vmin VARPTRMOTORCOLOR "
- 1270 PRINT " ResistorCALLRCALL "
- 1280 PRINT " CLSBSAVE' "
- 1290 PRINT " BLOADSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDCOLOR + Vreg (regulated) "
- 1300 PRINT " VARPTRMOTORCOLOR VARPTRMOTORCOLOR "
- 1310 PRINT " Zener diodeCALLDCALL CALLLCALLload "
- 1320 PRINT " CLSBSAVE' CLSBSAVE' "
- 1330 PRINT " SOUND SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDMOTORSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND' - "
- 1340 FOR J=3 TO 12:LOCATE J,68:PRINT STRING$(13,32);:NEXT J
- 1350 COLOR 7,0
- 1360 RETURN
- 1370 '
- 1380 'HARDCOPY
- 1390 GOSUB 1500:LOCATE 25,2:COLOR 14,6
- 1400 PRINT " Press 1 to print screen, 2 to print screen & ";
- 1410 PRINT "advance paper, or 3 to continue.";:COLOR 7,0
- 1420 Z$=INKEY$:IF Z$="3"THEN GOSUB 1500:RETURN
- 1430 IF Z$="1"OR Z$="2"THEN GOSUB 1500:GOTO 1450
- 1440 GOTO 1420
- 1450 FOR QX=1 TO 24:FOR QY=1 TO 80
- 1460 LPRINT CHR$(SCREEN(QX,QY));
- 1470 NEXT QY:NEXT QX
- 1480 IF Z$="2"THEN LPRINT CHR$(12)
- 1490 GOTO 1390
- 1500 LOCATE 25,1:PRINT STRING$(80,32);:RETURN
-